home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / lightwave / arexx_macros / absolute_position.lwm next >
Text File  |  1994-09-01  |  1KB  |  51 lines

  1. /* CMD: Absolute Position
  2.  * Place an Object using absolute coordinates of its center
  3.  * By Nir Hermoni, Israel
  4.  * zapa@datasrv.co.il
  5. */
  6.  
  7. libadd = addlib("LWModelerARexx.port",0)
  8. signal on error
  9. signal on syntax
  10. box=boundingbox()  /* Should check out empty list ...  */
  11. parse var box n x1 x2 y1 y2 z1 z2
  12. cx=(x2+x1)/2
  13. cy=(y2+y1)/2
  14. cz=(z2+z1)/2
  15.  
  16. call req_begin("Absolute Position")
  17.  
  18. XID = req_addcontrol("X Position","N",1)
  19. YID = req_addcontrol("Y position","N",1)
  20. ZID = req_addcontrol("Z position","N",1)
  21.  
  22. call req_setval XID,cx
  23. call req_setval YID,cy
  24. call req_setval ZID,cz
  25.  
  26. if (~req_post()) then do
  27.     call req_end
  28.     exit
  29. end
  30.  
  31. xpos = req_getval(XID)
  32. ypos = req_getval(YID)
  33. zpos = req_getval(ZID)
  34.  
  35. call req_end()
  36.  
  37. deltax = -(cx-xpos)
  38. deltay = -(cy-ypos)
  39. deltaz = -(cz-zpos)
  40.  
  41. call MOVE(deltax deltay deltaz)
  42.  
  43. if (libadd) then call remlib("LWModelerARexx.port")
  44. exit
  45.  
  46. syntax:
  47. error:
  48.     t=Notify(1,'!Rexx Script Error','@'ErrorText(rc),'Line 'SIGL)
  49.   if (libadd) then call remlib("LWModelerARexx.port")
  50.     exit
  51.